
package com.uuah.server.api.endpoint;

import java.io.Serializable;
import java.util.Map;

import com.uuah.server.api.IUuahContext;
import com.uuah.server.api.transformer.IBaseTransformer;
import com.uuah.server.api.transport.IConnector;
import com.uuah.server.api.transport.IMessageDispatching;
import com.uuah.server.api.transport.retry.RetryPolicyTemplate;


public interface IUuahEndpoint extends IMessageDispatching, Serializable {
	String INITIAL_STATE_STARTED = "started";
	String INITIAL_STATE_STOPPED = "stopped";


	IEndpointURI getEndpointURI();

	String getEncoding();

	IConnector getConnector();

	String getName();

	IBaseTransformer getRequestTransformer();

	IBaseTransformer getResponseTransformer();

	Map getProperties();

	Object getProperty(Object key);

	String getProtocol();

	boolean isSynchronous();

	boolean isIpFilter();

	String getInitialState();

	IUuahContext getUuahContext();

	RetryPolicyTemplate getRetryPolicyTemplate();

	String getEndpointBuilderName();
}
